// 深拷贝函数
function deepCopy(obj) {
  // 判断是否为对象
  if (typeof obj !== 'object' || obj === null) {
    return obj;
  }

  // 判断是否为日期对象
  if (obj instanceof Date) {
    return new Date(obj);
  }

  // 判断是否为正则对象
  if (obj instanceof RegExp) {
    return new RegExp(obj.source, obj.flags);
  }

  // 判断是否为函数
  if (typeof obj === 'function') {
    return function () {
      return obj.apply(this, arguments);
    };
  }
    // 创建一个数组或对象来存储深拷贝的结果
  const result = Array.isArray(obj) ? [] : {};

  // 遍历对象的属性
  for (const key in obj) {
    // 递归调用深拷贝函数
    result[key] = deepCopy(obj[key]);
  }

  return result;
}